Systems for complex applications can be run off of multiple server machines. Changes can be deployed to the multiple server machines at the same time so that each machine has the same setup. It is desired that the changes to the servers be done in a two-phase manner such that the changes can be rolled back if not all of the servers are able to commit the changes.